package com.xiaoshuidi.cloud.module.report.service.datamanage;

import com.xiaoshuidi.cloud.module.report.controller.datamanage.vo.*;

import java.time.LocalDate;
import java.util.List;

public interface BusinessDataService {
    /**
     * 在租房源总览
     *
     * @param apartmentIds
     * @param condition
     * @return
     */
    OverviewOfHouseRespVO overviewOfHouse(List<Long> apartmentIds, String condition);

    /**
     * 在租房源出租率统计
     * @param apartmentIds
     * @param startDate
     * @param endDate
     * @return
     */
    RentalStatisticsRespVO rentalStatistics(List<Long> apartmentIds, LocalDate startDate, LocalDate endDate);

    /**
     * 空置房源变化趋势
     * @param apartmentIds 门店id
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return
     */
    List<EmptyRoomChangeTrendRespVO> emptyRoomChangeTrend(List<Long> apartmentIds, LocalDate startDate, LocalDate endDate);

    /**
     * 签约总览
     * @param apartmentIds
     * @return
     */
    SigningOverviewRespVO signingOverview(List<Long> apartmentIds);

    /**
     * 签约人员排名
     * @param apartmentIds 门店id
     * @param rankingMode 排名方式
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return
     */
    List<RankingOfContractedRespVO> rankingOfContractedPersonnel(List<Long> apartmentIds, String rankingMode, LocalDate startDate, LocalDate endDate);

    /**
     * 门店签约排名
     * @param apartmentIds 门店id
     * @param rankingMode 排名方式
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return
     */
    List<RankingOfContractedRespVO> rankingOfContractedApartment(List<Long> apartmentIds, String rankingMode, LocalDate startDate, LocalDate endDate);

    /**
     * 合同到期数
     * @param apartmentIds
     * @return
     */
    List<ContractExpirationNumRespVO> contractExpirationNum(List<Long> apartmentIds);
}
